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