如何在Ruby on Rails中链接到我的控制器中的create函数?

时间:2010-06-28 03:57:29

标签: ruby-on-rails

我的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方法?谢谢你的阅读。

2 个答案:

答案 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 %>