0

このコントローラー コードを記述するより効率的な方法はありますか? これは、名前と説明フィールドを渡してモデルに保存するフォームを処理します。モデルの列と一致する限り、各パラメーターを指定するのではなく、すべてのパラメーターを一度に渡す方法があるかどうか疑問に思っています。ご協力いただきありがとうございます!

コントローラ:

def new
   @new_company = Company.new
   @new_company.name = params[:name]
   @new_company.description = params[:description]
   @new_company.save
end

意見:

<form action="/checklist/new" method="post">

  <label>Company Name</label>
  <input type="text" name="name"/>

  <label>Company Description</label>
  <input type="text" name="description"/>

  <button type="submit">Submit</button>

</form>

モデル:

class Company < ActiveRecord::Base
  attr_accessible :description, :name
end
4

1 に答える 1

2

NEWではなくCREATEアクションで書き込むことになっています

def create
   @company = Company.new(params[:company])
   @company.save
end

新規は次のようになります。

   def new
      @company = Company.new    
   end

また、フォームにhtmlを書き込む代わりに、Railsの方法で記述します。

<%= form_for(@company) do |f| %>

  <%= f.label :name , "Company Name" %>
  <%= f.text_field :name %>

  <%= f.label :description, "Company Description"%>
  <%= f.text_field :description %>

  <%= f.submit "Submit"%>
<% end %>

すべてをよりよく理解するために、この本をお勧めします:http: //ruby.railstutorial.org/ またはこの短いチュートリアル: http: //railsforzombies.org/levels/1

于 2013-03-12T17:34:07.413 に答える