在Controller中键入Error没有将Symbol隐式转换为String Rails

时间:2015-08-10 18:47:01

标签: ruby-on-rails ruby-on-rails-4

当我期待它们成为障碍时,我的控制器中的参数似乎是一个哈希。

以下是错误页面上的参数

{"utf8"=>"✓",
 "authenticity_token"=>"1SmzXJdbOsAjHo2z+j0vPjnh6uSWX8Mmwb9LAnrtjNo=",
 "hour_log"=>{"assignment"=>"Tutoring",
 "hours"=>"2",
 "supervisor"=>"GW Library",
 "date"=>"8/10/15"},
 "commit"=>"Create"}

这是控制器:

class HoursController < ApplicationController
  before_action :require_user
  def new
    @entry = HourLog.all
    @hour = HourLog.new
  end
  def create
    @hour = HourLog.new(log_params)
  end
  private
  def log_params
    require(:HourLog).permit(:assignment, :hours, :supervisor, :date )
  end
end

以下是观点:

<%= form_for(@hour, url: log_path) do |f|%>
              <tr>
                <td id="dashfield"><%=f.text_field :assignment, :placeholder=> "Assignment"%></td>
                <td id="dashfiled"><%=f.text_field :hours, :placeholder => "Hours"%></td>
                <td id="dashfield"><%=f.text_field :supervisor, :placeholder=> "Supervisor/Location"%></td>
                <td id="dashfield"><%=f.text_field :date, :placeholder=> "Date"%></td>
                <td id="dashbtn"><%=f.submit 'Create' %></td>
              </tr>
          <%end%>

以下是路线:

Rails.application.routes.draw do
  root 'users#index'
  get '/signup' => 'users#new'
  resources :users
  get '/login' => 'sessions#new'
  post '/login' => 'sessions#create'
  delete '/logout' => 'sessions#destroy'
  get '/dashboard' => 'hours#new'
  post '/dashboard' => 'hours#create', as: :log
end

我正在使用Rails 4.1。谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

好吧,你必须按如下方式编写强参数方法:

GetParentAsync