0

ユーザー情報を取得してデータベースに保存するフォームがあります。一部のフィールドでは、ユーザーはフィールドに新しい情報を入力したり、データベースから以前の情報を選択したりできます。以前は機能していましたが、最近データベースをクリーンアップしたため、ページにアクセスしようとするとこのエラーが発生します。

未定義のメソッド`empty? ' nilの場合:NilClass

抽出されたソース(27行目あたり):

27:<%= f.select(:client、Project.all.map {| p | [p.client]}。uniq!、:prompt => "前のクライアントを選択")%>

フォームビューの例:

<div class="field">
<%= label_tag :new_client, "Client" %><br/>
<%= text_field_tag :new_client %>
Or
<%= f.select( :client, Project.all.map {|p| [p.client]}.uniq!, :prompt => "Select a previous Client") %>
</div>

プロジェクトコントローラー:

def create
@project = Project.new(params[:project])


@project.client = params[:new_client] unless params[:new_client].empty?
@project.exception_pm = params[:new_exception_pm] unless params[:new_exception_pm].empty?
@project.project_owner = params[:new_project_owner] unless params[:new_project_owner].empty?
@project.role = params[:new_role] unless params[:new_role].empty?
@project.industry = params[:new_industry] unless params[:new_industry].empty?
@project.business_div = params[:new_business_div] unless params[:new_business_div].empty?

respond_to do |format|
  if @project.save
    format.html { redirect_to @project, notice: 'Project was successfully created.' }
    format.json { render json: @project, status: :created, location: @project }
  else
    format.html { render action: "new" }
    format.json { render json: @project.errors, status: :unprocessable_entity }
  end
end
end

アップデート:

エラーは.uniqから来ていると思います!私のフォームビューのメソッド。他のアイデアはありますか?

ありがとう

4

3 に答える 3

1

blank?代わりにメソッドを使用する必要がありますempty?

于 2012-07-18T19:04:40.483 に答える
0

ドロップダウンにマップするプロジェクトはありません。

プロジェクトを追加すれば大丈夫です。

于 2012-07-18T16:17:11.913 に答える
0

uniq!使用からに変更しましたuniq

それで問題は解決したようです。

于 2012-07-19T10:16:53.557 に答える