Rails - 保存多个参数的最有效方法?

时间:2013-03-12 17:32:06

标签: ruby-on-rails ruby-on-rails-3 forms

是否有更有效的方法来编写此控制器代码?这会处理一个传递名称和描述字段的表单,然后将其保存在我的模型中。我想知道是否有办法一次性传递所有参数,而不是指定每个参数,只要它们与我的模型中的列匹配。谢谢你的帮助!

控制器:

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

1 个答案:

答案 0 :(得分:2)

您应该在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