当我提交表单时,我收到以下参数:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"3434343445=", "form"=>{"requested_user"=>"user@example.com"}, "form_type"=>"repository_creator", "gitcategory"=>{"name"=>"mechanical"}, "svncategory"=>{"name"=>"sales"}, "commit"=>"Submit"}
在我的模型中self.requested_user
可供我使用,因为requested_use
r是我的模型中的字段。但是其他值如svncategory
和gitcategory
都是从select标记传递的,该标记未存储在我的数据库中,也不是我模型的一部分。我只是通过html下拉列表传递,因为我不想将它存储在任何地方。
如何访问我的模型中的变量,svncategory's name
和svncategory's
。
答案 0 :(得分:1)
传递给控制器的参数可通过变量params
获得。 params[:svncategory].inspect
会产生{"name"=>"sales"}
。
params
变量只能通过控制器层访问,因此您必须将所需的参数传递给模型。
可以通过在模型中添加attr_acccessors来实现这一点。
class YourModel < ActiveRecord::Base
attr_accessor :gitcategory, :svncategory
end
然后在实例化对象时手动设置属性。
your_model = YourModel.new(params[:form])
your_model.gitcategory = params[:gitcategory][:name]
your_model.svncategory = params[:svncategory][:name]
虽然它不是一个理想的解决方案,但它可以解决您的问题。