0

構築している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">

アクションURLの「編集」の前に「/1/」を付けるのはなぜですか?

4

2 に答える 2

4

簡単な答え。RESTfulルート

基本的にresources :form_questions、config / routers.rbで定義しました。これにより、URLが自動的にRESTfulに変換されます。

于 2009-11-24T02:16:44.467 に答える
0

次のような、提供されているRESTfulヘルパーを使用することをお勧めします。

<% form_for(@form_question) do %>
  <%= f.text_field :question %>
  ...
<% end %>

これは、への応答がまたはであるかどうかに応じて、createまたはそれぞれへのURLを生成します。また、フォームタグに、返されるものに基づいて異なるid属性を与えるなど、他のことも行います。update@form_questionnew_record?truefalsenew_record?

于 2009-11-24T04:04:27.543 に答える