2017-10-31 11 views
0

私はレールが新しく、無知な言い訳になります。 私は天文観測の見方をしたホームページを持っており、天文台が整理した外出の見方を同じページに入れたいと思います。私は、同じページに2つのビューを追加することはできません 以来、私は部分として第2のビューを渡すためにしようと試みたが、それは変数の問題でしたが、私はRails 5:フォームの最初の引数に何の誤りもありません。

First argument in form cannot contain nil or be empty 

だから私はエラーを取得し、ローカルを渡すためにしようと試みました部分的なものの変数は変わりません。 は、どのように私は、ビューの外出用のコントローラで私はoutings_controllerで@outing=Outing.newを定義しobservative_sessions

の観点で可視化される部分の外出/ _index.html.erbに@outingの変数を渡すん

アプリ>ビュー> observative_sessionsで

は私が_index.html.erbを置くアプリ>ビュー>外出で

<div class="panel panel-default" id = "observative_sessions"> 
... 
</div> 
<%= render 'outings/index', :outings => @outing %> 

とindex.html.erbを持って

<%= render 'outings/new_modal' %> 
    <div class="panel panel-default"> 
... 
<tbody> 
    <% @outings.each do |outing| %> 
    ... 
    <% end %> 
</tbody> 

_new_modal.html.erbは_form.html.erb

<%= render 'outings/form' %> 

そして私は@outingと、フォームの最初の行でエラーが出る形

<%= bootstrap_form_for @outing do |f| %> 
<%= f.date_field :day, label: 'Giorno:' %> 
<%= f.text_field :location, label: 'Luogo:' %> 
<%= f.time_field :time, label: 'Ora:' %> 
<%= f.submit 'Aggiorna' %> 
<% end %> 

を呼び出します。 ビューを1ページだけに置くと、すべてが機能しますが、部分的には機能しません。 どうしたのですか?

ご協力いただきありがとうございます。

+1

どのように、どこであなたは '@のouting'を定義していますか? –

+0

outings_controllerの '@outing = Outing.new' – AleA

答えて

0

@outing変数は、変数@outingを使用しているすべてのフォームに渡す必要があります。

変更次に、この

<%= render 'outings/form', outing: outing %>

よう_form.html.erbをレンダリングする行を変更し、最終的にはこの

のような実際のフォームを変更するには、この

<%= render 'outings/new_modal', outing: outings %>

のような部分的_new_modal.html.erbをレンダリングするライン

<%= bootstrap_form_for outing do |f| %> 
    <%= f.date_field :day, label: 'Giorno:' %> 
    <%= f.text_field :location, label: 'Luogo:' %> 
    <%= f.time_field :time, label: 'Ora:' %> 
    <%= f.submit 'Aggiorna' %> 
<% end %> 
アプリで
+0

未定義のローカル変数エラーが発生しました – AleA

+0

エラーメッセージの詳細を教えてください。スクリーンショットに含まれる可能性がありますか? –

+0

申し訳ありませんが、このエラーが発生してもファイルを保存するのを忘れました![rails nil argument error](http://i66.tinypic.com/21muiwo.jpg) – AleA

0

>ビュー> observative_sessionsは私が_index.html.erb

<%= render partial: 'outings/new_modal',locals: {outing: outing} %> 
    <div class="panel panel-default"> 
... 
<tbody> 
    <% @outings.each do |outing| %> 
    ... 
    <% end %> 
</tbody> 

_new_modal.htmlを置くアプリ>ビュー>外出で

<div class="panel panel-default" id = "observative_sessions"> 
... 
</div> 
<%= render partial: 'outings/index', locals: {outing: @outing} %> 

とindex.html.erbを持っています.erbは_form.htmlを呼び出します。ERB

<%= render partial: 'outings/form', locals: {outing: outing} %> 

は、その後、あなたの形式でローカル外出変数を使用します。

<%= bootstrap_form_for outing do |f| %> 
    <%= f.date_field :day, label: 'Giorno:' %> 
    <%= f.text_field :location, label: 'Luogo:' %> 
    <%= f.time_field :time, label: 'Ora:' %> 
    <%= f.submit 'Aggiorna' %> 
<% end %> 
関連する問題