我的routes.db文件中有这一行:
map.resources :things
我正在尝试创建一个可以创建新内容的链接。到目前为止我已经
了<%= link_to "add thing", things_path (:thingName => key)%>
但我收到此错误消息:
Unknown action
No action responded to index. Actions: create and new
如何执行link_to行,以便链接到create方法而不是index方法?谢谢你的阅读。
答案 0 :(得分:1)
您要链接到新动作还是创建动作?新的行动是: &lt;%= link_to“add thing”,new_thing_path%&gt; 创建操作在这里没有意义,因为您没有任何数据要注入新对象?除非我遗漏了什么......
答案 1 :(得分:1)
您可能不希望通过类似的链接创建资源。链接是HTTP GET
请求,可以缓存,搜索引擎将遵循该链接,导致数据库记录创建不正确。您应该只使用HTTP POST
个请求来创建资源。为此,您需要form
。如果您已经知道要传递的数据,则可以使用hidden_field
传递其他数据
<% form_for Thing.new(:thing_name => key ) do |f| %>
<%= f.hidden_field :thing_name %>
<%= f.submit %>
<% end %>