0

我是 Rails 的新手,我使用一个简单的邮件功能将一些属性访问器传递给我拥有的电子邮件模板。

我的模型如下所示:

class Model < ActiveRecord::Base

attr_accessor :replace_1, :model_id

end

我的控制器如下所示:

def model_replace
  @model= Model.find(params[:model][:model_id])

  UserMailer.replacement_model(@model).deliver
  respond_to do |format|
    format.html { redirect_to({ :action => "model_replace"}, :notice => 'Model has been replaced.') }
  end
end 

我的表格如下所示:

 # Form stuff bound to Model

<div class="radio"><%= f.check_box :replace_1 %></div>
<%= f.hidden_field(:model_id, :value =>model.id)

我的邮件程序工作正常并将模型传递给以下简单的 .erb 文件:

<p>Hello, the value of replace_1 is <%=@model.replace_1 %></p>

我知道模型正在通过,因为我能够成功访问“@model.User.user_id”。

同样在 rails 终端我可以看到正在提交的数据 - “model” => { “replace_1” => “1” }

有人可以帮助我吗,我在我的 erb 文件中为 replace_1 返回一个空白值。

谢谢。

4

1 回答 1

0

我通过以下方式将参数添加到我的控制器中解决了这个问题:

def model_replace
@model= Model.find(params[:model][:model_id])

@model.replace_1 = params[:model][:replace_1]

UserMailer.replacement_model(@model).deliver
respond_to do |format|
  format.html { redirect_to({ :action => "model_replace"}, :notice => 'Model has been replaced.') }
 end
end 

然后我简单地通过以下方式在我的 .erb 文件中访问它:

@model.replace_1

看起来有点脏,但它的工作。希望它可以帮助任何遇到这个新手问题的人,并且我对执行此功能的任何改进方法持开放态度。

谢谢!

于 2012-08-06T12:10:01.790 回答