我做了一个 ruby on rails 项目,它比它需要的复杂得多(5 个模型,而我只需要 3 个模型)在进行此更改后,我的代码停止工作。
错误信息是:
ActiveRecord::RecordNotFound in UserFooController#create
然后是:
找不到没有 ID 的 Foo。
所以我正在处理多对多的关系
用户 --> user_foo <--- foo
各型号如下
class Foo < ActiveRecord::Base
has_many :user_foos
attr_accessible :id
#etc
用户
class User < ActiveRecord::Base
has_many :user_foos
attr_accessible :id
#etc
user_foo
class UserFoo < ActiveRecord::Base
belongs_to :foo
belongs_to :user
attr_accessible :id, :user_id, :foo_id
end
所以这个想法是,从主页上按下一个按钮,将您带到 user_foo 表单 html 以填写 foo 中特定条目的详细信息。应用程序到此为止工作,但是在完成 foo 条目详细信息并按下提交按钮后,出现一个错误,提示“找不到没有 ID 的 Foo”
按钮的代码如下
<%= button_to 'Enter Foo', user_foos_path(foo_id: foo) %>
控制器创建 user_foo 看起来像这样
def create
@user_foo
foo = Foo.find(params[:foo_id])
@user_foo = foo
@user_foo = current_user
#etc
我很确定问题出在这个控制器上,但是经过数小时的代码调整后,我不得不来这里寻求帮助。非常感谢任何帮助或建议。
这是按钮周围的代码,根据要求
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<h1>Your Foo Catalog</h1>
<% @foos.each do |foo| %>
<div class ="entry">
<%= image_tag(foo.image_url) %>
<h3><%= foo.title %></h3>
<p><%= sanitize(foo.description) %></p>
<div>
<h3> The foo Starts on <%= foo.start_date %></h3>
</div>
<div>
<h3> The foo will end on <%= foo.end_date %></h3>
<%= button_to 'Enter foo', user_foos_path(foo_id: foo) %>
</div>
</div>