Ruby on rails 在Rails中传递没有模型关联的变量
我有一个变量,我想通过rails中的表单传递它 变量不方便,因为它不是模型的一部分。我真的不想在DB中创建一列,这样我就可以传递变量了 当我尝试使用一些无害的方法传递变量时,例如:Ruby on rails 在Rails中传递没有模型关联的变量,ruby-on-rails,Ruby On Rails,我有一个变量,我想通过rails中的表单传递它 变量不方便,因为它不是模型的一部分。我真的不想在DB中创建一列,这样我就可以传递变量了 当我尝试使用一些无害的方法传递变量时,例如: <input type="hidden" id="blah" value=<%= "#{@blah}" %> /> 隐藏字段在源中正确显示,但不随参数散列一起传递。当我用类似于id=“review_blah”rails的东西正确地对它进行编码时,rails假定它是review模型的一部分
<input type="hidden" id="blah" value=<%= "#{@blah}" %> />
隐藏字段在源中正确显示,但不随参数散列一起传递。当我用类似于id=“review_blah”
rails的东西正确地对它进行编码时,rails假定它是review模型的一部分,并且因为它不是模型的一部分而生气
难道没有解决办法吗??在这些情况下,是否有一些方法可以轻松地传递变量,而无需重建模型
感谢您在型号中使用
attr_accessible :blah
模型中
attr_accessible :blah
虽然它很难看,但你可以做如下的事情
<input name='x' type="hidden" id="blah" value=<%= "#{@blah}" %> />
虽然它很难看,但你可以做如下的事情
<input name='x' type="hidden" id="blah" value=<%= "#{@blah}" %> />
我认为您需要设置输入参数的名称。否则它将不会包含在Rails参数散列中
<input type="hidden" id="blah" value=<%= "#{@blah}" %> name="blah"/>
我认为您需要设置输入参数的名称。否则它将不会包含在Rails参数散列中
<input type="hidden" id="blah" value=<%= "#{@blah}" %> name="blah"/>
表中不需要有列。检查
这样你就可以
=form_for @model do |f|
=f.hidden_field :blah
这将沿着params
散列中的对象传递blah
表中不需要有列。检查
这样你就可以
=form_for @model do |f|
=f.hidden_field :blah
这将沿着
参数
散列中的对象传递blah
。您需要为虚拟属性定义一个属性访问器
,并需要将其添加到属性可访问
列表中,以便在表单中使用。像这样:
attr_accessor :blah
这使得blah
和blah=
方法可用,您可以使用这些方法来处理传入的数据
def blah=(data)
#do sth. with the submited data here
end
在这种情况下,您可以访问在“blah”字段中作为局部变量“data”输入的数据
然后您需要将其作为常规表单的一部分:
<%= f.hidden_field :blah, :value => <Your value here> %>
否则,由于批量分配保护,请求将失败。您需要为虚拟属性定义一个
属性访问器,并需要将其添加到属性可访问
列表中,以便在表单中使用。像这样:
attr_accessor :blah
这使得blah
和blah=
方法可用,您可以使用这些方法来处理传入的数据
def blah=(data)
#do sth. with the submited data here
end
在这种情况下,您可以访问在“blah”字段中作为局部变量“data”输入的数据
然后您需要将其作为常规表单的一部分:
<%= f.hidden_field :blah, :value => <Your value here> %>
否则,由于批量分配保护,请求将失败。您是否尝试了params[:blah]?您是否尝试了params[:blah]?