タグ付けされた質問 「form-for」


3
ネストされたリソースを持つform_for
form_forとネストされたリソースについて2つの部分からなる質問があります。ブログエンジンを作成していて、コメントを記事に関連付けたいとしましょう。ネストされたリソースを次のように定義しました: map.resources :articles do |articles| articles.resources :comments end コメントフォームは、記事のshow.html.erbビュー内で、たとえば次のように記事自体の下にあります。 <%= render :partial => "articles/article" %> <% form_for([ :article, @comment]) do |f| %> <%= f.text_area :text %> <%= submit_tag "Submit" %> <% end %> これにより、「nilに対して呼び出されたIDが誤って呼び出される」などのエラーが発生します。私も試しました <% form_for @article, @comment do |f| %> これは正しくレンダリングされますが、コメントではなく記事の「テキスト」フィールドにf.text_areaを関連付け、そのテキスト領域のarticle.text属性のHTMLを表示します。だから私もこれが間違っているようです。私が欲しいのは、 'submit'がCommentsControllerのcreateアクションを呼び出すフォームです。たとえば、/ articles / 1 / commentsへの投稿リクエストなど、paramsにarticle_idがあります。 私の質問の2番目の部分は、最初にコメントインスタンスを作成する最良の方法は何ですか?ArticlesControllerのshowアクションで@commentを作成しているので、コメントオブジェクトはform_forヘルパーのスコープ内にあります。次に、CommentsControllerのcreateアクションで、form_forから渡されたパラメーターを使用して新しい@commentを作成します。 ありがとう!


2
Railsは編集できないテキストフィールド
私は次のように書かれたform_forを持っています: <div class="field"> <%= location.label :city %> <%= location.text_field :city, :disabled=>true%> </div> <div class="field"> <%= location.label :country %> <%= location.text_field :country, :disabled=>true%> </div> ご覧のとおり、2つのテキストフィールドはjquery関数によって自動入力されるため無効になっており、ユーザーに処理させたくありません。問題は、このように、無効になっているため、ビューがそのパラメーターをコントローラーに渡さないことです。編集できないtext_fieldをコントローラーに渡す他の方法はありますか?テキストボックス内のユーザーに結果を表示したいので、非表示のフィールドを使用したくないことに注意してください TNX
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.