Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的方法“stringify#u键';至于;创建";:再次输入rubyonrails_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 未定义的方法“stringify#u键';至于;创建";:再次输入rubyonrails

Ruby on rails 未定义的方法“stringify#u键';至于;创建";:再次输入rubyonrails,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我犯了一个错误 Started POST "/actions" for 127.0.0.1 at 2012-10-29 15:04:01 +0600 Processing by ActionsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"lfHYF3EQn1/lMReK3alX3NsGa4wSMejC/0fEeoAFYUY=", "commit"=>"Create Act

我犯了一个错误

Started POST "/actions" for 127.0.0.1 at 2012-10-29 15:04:01 +0600
Processing by ActionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"lfHYF3EQn1/lMReK3alX3NsGa4wSMejC/0fEeoAFYUY=", "commit"=>"Create Action"}
Completed 500 Internal Server Error in 1ms

NoMethodError (undefined method `stringify_keys' for "create":String):
  app/controllers/actions_controller.rb:43:in `new'
  app/controllers/actions_controller.rb:43:in `create'
这段代码完全是由Rails生成的,我不明白为什么它不工作

这是模型

class Action < ActiveRecord::Base
  attr_accessible :name, :user_id
end
这是表格代码

<%= form_for(@action) do |f| %>
  <% if @action.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@action.errors.count, "error") %> prohibited this action from being saved:</h2>

      <ul>
      <% @action.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :user_id %><br />
    <%= f.number_field :user_id %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

如果我正确理解了这一点,rails必须将action[name]和action[user_id]转换为哈希表,并将其放入参数[:action],然后action.new将此哈希表作为参数获取。怎么了?啊,我知道。你有名字冲突

操作
是保留名称。还有
控制器
id
和其他可能的。请为表单使用其他名称


当您发布到
/actions/create
时,
参数[:controller]
应为“posts”,而
参数[:action]
应为“create”。这些参数是由Rails分配的。

啊,我知道。你有名字冲突

操作
是保留名称。还有
控制器
id
和其他可能的。请为表单使用其他名称


当您发布到
/actions/create
时,
参数[:controller]
应为“posts”,而
参数[:action]
应为“create”。这些参数由Rails分配。

在您的参数中,您可以得到params[:controller]=controller\u name和params[:action]=action\u name

在本例中,您是从Action_name而不是object Action的参数创建Action abject。尝试在参数中为对象参数使用不同的名称

在您的参数中,您可以得到params[:controller]=controller\u name和params[:action]=action\u name

在本例中,您是从Action_name而不是object Action的参数创建Action abject。尝试在参数中为对象参数使用不同的名称

当我的模型没有用户id字段时不会发生此错误我也不知道它来自何处。请参阅下面的链接了解解决方案当我的模型没有用户id字段时不会发生此错误我也不知道它来自何处。请参阅下面的链接了解此解决方案,谢谢!我在哪里可以找到所有被禁止的名字,也许还有rails的另一个技巧?读书,伙计,读书。我推荐这个:。这个很有用,谢谢!我在哪里可以找到所有被禁止的名字,也许还有rails的另一个技巧?读书,伙计,读书。我推荐这个:。
<%= form_for(@action) do |f| %>
  <% if @action.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@action.errors.count, "error") %> prohibited this action from being saved:</h2>

      <ul>
      <% @action.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :user_id %><br />
    <%= f.number_field :user_id %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
utf8:✓
authenticity_token:lfHYF3EQn1/lMReK3alX3NsGa4wSMejC/0fEeoAFYUY=
action[name]:sdf
action[user_id]:23
commit:Create Action