Rails表单 - 访问不属于表单的变量

时间:2011-06-29 20:06:15

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

我想创建一个表单来提交创建模型X实例所需的信息并将其保存到数据库中,但我有一个小问题:我知道如何添加表单字段,如文本区域和什么不是然后如何在调用create方法时使这些值可访问,但如果我还想发送一个不属于表单可访问的值的内容呢?例如,如果我希望能够访问我的html文档的<div>中的某些文本并将其发送到模型X的create方法(因此它可以像内容变量或其他内容一样存储),该怎么办?我该怎么做?

2 个答案:

答案 0 :(得分:0)

简短的回答是你不能 - 将数据发送到服务器,它必须在表单字段中。

更长的答案 - 有很多方法可以解决这个问题,你有几个选择 - 将文本放在textarea中并将其设置为看起来像div,或者在创建模板时将其放在隐藏字段中,或使用javascript复制它进入一个隐藏的领域......一切都取决于你想要做的事情。也许你可以提供更多细节?

答案 1 :(得分:0)

在您的模型中,您想使用attr_accessor

您可以使用attr_accessor创建一个可以在模型中使用的虚拟属性,但在此之后将被丢弃。

例如:

应用程序/ models.post.rb

class Post < ActiveRecord::Base

  attr_accessor :some_variable 

  #now you can access 'some_variable' this variable in the model
  #try Post.some_variable in the console

end

应用程序/视图/帖/ _form.html.erb

<div id="form"> 

      <div class="field">
        <%= f.label :some_variable  %> 
        <%= f.text_field :some_variable  %>
      </div>
      <div class="actions">
        <%= f.submit %>
      </div>
    <% end %>
</div>