我在正在构建的Rails站点中有以下form_for声明:
form_for(form_question, :url => { :controller => "form_questions", :action => "edit", :id => form_question.id }) do |f|
但该网站呈现;
<form action="/form_questions/1/edit">
为什么在动作网址中将“/ 1 /”放在“编辑”之前?
答案 0 :(得分:4)
简单回答。 RESTful routes
基本上你已经在config / routes.rb中定义了resources :form_questions
,并且正在自动转换你的URL以使其成为RESTful。
答案 1 :(得分:0)
我建议您使用提供给您的RESTful助手,例如:
<% form_for(@form_question) do %>
<%= f.text_field :question %>
...
<% end %>
这将生成create
或update
的网址,具体取决于@form_question
对new_record?
的回复是true
还是false
。它还会执行其他操作,例如,根据new_record?
返回的内容,为表单标记提供不同的id属性。