我是轨道4的轨道初学者,我正在边做边学。我的简单测试应用上有用户和帖子。我的用户模型
has_many :posts
我的帖子模型
belongs_to :user
我有一个表格部分用于创建像这样的新帖子
<%= form_for @post do |f| %>
<% if @post.errors.any? %>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
<%= f.label :title %>
<%= f.text_field :title %>
<br/>
<%= f.label :body %>
<%= f.text_area :body %>
<br/>
<%= f.submit %>
我的路线档案
resources :users do
resources :posts, except: [:index]
end
当我尝试创建新帖子时,我得到了一个
没有路线匹配[POST]“/ posts”
我假设它不起作用,因为我的表格部分是如何设置的。
我认为form_for @post do |f|
需要有所不同,但我不确定要改变它的内容。有什么建议?感谢。
答案 0 :(得分:2)
这条路线
resources :users do
resources :posts, except: [:index]
end
您必须使用
创建表单form_for [@user, @post] do |f|
或
form_for [current_user, @post] do |f|
答案 1 :(得分:0)
您应该从路线中删除except: [:index]
。这必须阻止/发布访问权限。