找不到 UserVacationDaysController 的操作"create"



我到处都看到有人问这个问题,但它从来没有解决我的问题。这是我的控制器:

class UserVacationDaysController < ApplicationController
  def new
    @user = current_user
    @user_vacation_days = UserVacationDay.new 
  end
  def create 
    @user_vacation_days = UserVacationDay.create(params[:user_vacation_day]) 
    @user_vacation_days.user = current_user 
    # @user_vacation_days.calculate_work_days
    # (another param that holds date range will get passed in)
    # puts @user_vacation_days.errors.inspect

    if @user_vacation_days.persisted?
        flash[:notice] = "Request Sent"
        redirect_to dashboard_index_path
        request_vacation_days # method from model. model method calls method in employee_mailer 
    else
        flash[:notice] = "Something went wrong, please try again"
        render :new
    end
  end
end

这是我的观点(形式)。

<h2>Request Days Off</h2>
<%= form_for :user_vacation_days, :url => user_vacation_days_path do |f| %> 
  <div><%= f.label "How much time off would you like to take?" %>
  <%= f.number_field :number_of_days %></div>  
  <div><%= f.label "Argue your case, slave" %>
  <%= f.text_area :description %></div>  
  <div><%= f.submit "Request Time Off" %></div>
<% end %>

我的2种控制器方法的路线是

      user_vacation_days POST   /user_vacation_days(.:format)     user_vacation_days#create
   new_user_vacation_day GET    /user_vacation_days/new(.:format) user_vacation_days#new

有人知道发生了什么事吗?我到处找了,什么也找不到。我想不出为什么找不到控制器方法的任何原因。谢谢

如果使用<%= form_for @user_vacation_days, :url => user_vacation_days_path do |f| %> 而不是<%= form_for :user_vacation_days, :url => user_vacation_days_path do |f| %>会发生什么

此外,一个User是否有_多个VacationDay?你可能想换成足智多谋的路线,并嵌套度假日。

config/routes.rb
resources :users do
  resources :user_vacation_days
end
in your new action under UserVacationDaysContoller #may want to rename this to just VacationDays since the nesting implies
def new
  @user = current_user
  @user_vacation_days = @user.vacation_days.build
end

最新更新