###前提・実現したいこと
Railsでページごとにフォームの内容を変更したいです。
現在はformの部分をpartialで切り出しています。
formオブジェクトが呼び出し元に渡せないため困っています。
###該当のソースコード
呼び出し元
edit.html.erb
ruby
1<% provide(:button_text, 'Save changes') %> 2 3# ここに試したことの内容を記述して試していました 4 5<h1>Update your profile</h1> 6<div class="row"> 7 <div class="col-md-6 col-md-offset-3"> 8 <%= render 'layouts/form' %> 9 10 <div class="gravatar_edit"> 11 <%= gravatar_for @user %> 12 <a href="http://gravatar.com/emails" target="_blank">Change</a> 13 </div> 14 </div> 15</div>
_form.html.erb
ruby
1<%= form_for(@user) do |f| %> 2 3 <%= f.label :name %> 4 <%= f.text_field :name, class: 'form-control' %> 5 6 <%= f.label :email %> 7 <%= f.email_field :email, class: 'form-control' %> 8 9 <%= f.label :password %> 10 <%= f.password_field :password, class: 'form-control' %> 11 12 <%= f.label :password_confirmation %> 13 <%= f.password_field :password_confirmation, class: 'form-control' %> 14 15 <% provide :form, f %> #試したこと2参照 16 <%= yield :extend_form %> #理想ではこのようにyieldを用いてformの内容を拡張したい 17 18 <%= f.submit yield(:button_text), class: "btn btn-primary" %> 19<% end %>
###試したこと
1 content_for を用いて引数が渡せないか試しました
<% content_for :extend_form f do %> <%= f.label :address %> <%= f.text_field :address, class: 'form-control' %> <% end %>
2 provideを用いて渡せるか試しました
<% content_for :extend_form do %> <% f = yield :form %> <%= f.label :address %> <%= f.text_field :address, class: 'form-control' %> <% end %>
###補足情報(言語/FW/ツール等のバージョンなど)
Rails 5.0.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。