同様の質問をしましたが、答えを見つけることができませんでした。情報を提供しすぎたと思うので、今回は短くて甘いものになります。
説明
ページ分割されたアイテム内にレンダリングしたい返信フォームがあります。ページ分割されたアイテムは次のように定義されている@share_item
ため、そのパーシャル内にコードを記述すると、次のようになります。
<% if registered_member?(share_item.user) %>
問題
フォームを部分的にレンダリングしたいときに問題が発生します。一部のコードを省略すると、何かに見えます
<%= form_for(@blob) do |f| %>
<%= f.text_area :content, rows: "2", placeholder: "Reply to @#{share_item.user.name}" %>
@blob
は、すべてが定義されているメイン モデル コントローラー@share_item
です@blob
。エラーが発生しますshare_item is an undefined model or method
。
機能するもの
フォームの html をパーシャル内に直接追加すると、次のようなものを追加できます。
<textarea id="blob_content" name="blob[content]" placeholder="Reply to @<%= share_item.user.name %>">@<%= share_item.user.name %> </textarea>
エラーは発生しません。
私が欲しいもの
フォームをパーシャル内に直接追加するのではなく、フォームをレンダリングできるようにしたいと考えています (面倒で、不気味で、スペースを消費します)。私は似たようなコードを他にも持っています。基本的には、これらのような状況で HTML をパーシャルに追加して、フォームをレンダリングして同じ結果を得る方法についての解決策を探しています。