2016-05-16 23 views
1

私はこのフォームを動作させようとしています。 Revisersは、Userとの関係がhas_oneです。未定義のメソッド入力 "NoMethodError in Revisers#new"

new.html:

<div class="container"> 
 

 
\t \t <%= form_for @reviser, url: new_user_reviser_path(user_id: current_user.id) do |f| %> 
 

 
\t \t <div class="row"> 
 
\t \t \t <div class="div.col-md-4 select"> 
 
\t \t \t <div class="form-group"> 
 
\t \t \t \t <label>dsd</label> 
 
\t \t \t \t <%= f.input :description %> 
 
\t \t \t </div> 
 
\t \t \t \t 
 
\t \t \t </div> 
 
\t \t </div> 
 
      <%= f.submit "Become Adviser", class: "btn btn-large btn-primary" %> 
 
\t \t <% end %> 
 
\t \t </div> 
 
\t </div>

エラーログ:

Rendered revisers/_form.html.erb (30.8ms) 
    Rendered revisers/new.html.erb within layouts/application (31.7ms) 
Completed 500 Internal Server Error in 38ms (ActiveRecord: 0.3ms) 

ActionView::Template::Error (undefined method `input' for #<ActionView::Helpers::FormBuilder:0x007faf35829f10>): 
    11:    <div class="div.col-md-4 select"> 
    12:    <div class="form-group"> 
    13:     <label>dsd</label> 
    14:     <%= f.input :description %> 
    15:    </div> 
    16:     
    17:    </div> 
    app/views/revisers/_form.html.erb:14:in `block in _app_views_revisers__form_html_erb___2471522092853631188_70195247159960' 
    app/views/revisers/_form.html.erb:8:in `_app_views_revisers__form_html_erb___2471522092853631188_70195247159960' 
    app/views/revisers/new.html.erb:1:in `_app_views_revisers_new_html_erb___1451348464463745171_70195280947160' 

reviserController:

class RevisersController < ApplicationController 

    before_action :set_reviser, only: [:show, :edit, :update] 
    before_action :authenticate_user!, except: [:show] 

    def index 
    @reviser = current_user.reviser 
    end 

    def show 

    end 

    def new 
    @reviser = current_user.build_reviser(params[:reviser]) 
    @user = User.find(params[:user_id]) 
    end 

    def create 
    @reviser = current_user.reviser.build(reviser_params) 

    if @reviser.save 
     redirect_to @reviser,notice: "saved...." 
    else 
     render :new 
    end 
    end 

    def edit 
    set_reviser 
    end 

    def update 
    set_reviser 
    if @reviser.update(reviser_params) 
     redirect_to @reviser,notice: "updated.." 
    else 
     render :edit 
    end 
    end 

private 
    def set_reviser 
    @reviser = current_user.reviser 
    end 

    def reviser_params 
    params.require(:reviser).permit(:description, :average_start, :average_end, :max_pages, :price_per, :active) 
    end 
end 
+0

問題は 'f.input'はその方法ではないということです存在する。おそらく、あなたは 'f.text_field'または他の多くの[Railsフォームヘルパー](http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html)の1つを意味していましたか? –

+0

o私は単純な形からこのような形に移行しているのを見ています。だから私は入力メソッドがないと思う..笑私は今それを得る。私はちょうど仮定した原因をチェックしていませんでした。 –

答えて

3

f.inputは、デフォルトのRailsフォームヘルパーでは定義されていません。 f.inputを使用するFormtastic/SimpleForm構文と混同している可能性があります。

あなたが簡単なフォームまたはFormtasticを使用していない場合は、単にここでのRailsが提供する標準のフォームヘルパー・メソッドを使用します。http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

<%= f.text_field :description %> 
+0

そう、私はそのハハをしたと信じていません。私はちょうどおっと!よく無料ポイント!よろしくお願いします。 –

関連する問題