Ruby Rails窗体--访问不属于窗体的变量

Ruby Rails窗体--访问不属于窗体的变量,ruby,ruby-on-rails-3,model,Ruby,Ruby On Rails 3,Model,我想制作一个表单,用于提交创建model X实例所需的信息并将其保存到数据库,但我有一个小问题:我知道如何添加表单字段,如文本区域等,以及如何在调用create方法时访问这些值,但是,如果我还想发送一个不属于表单可访问部分的值,该怎么办?例如,如果我希望能够访问html文档的中的一些文本,并将其发送到model X的create方法(这样它就可以像内容变量之类存储在中),该怎么办?如何做到这一点?简短的回答是您不能-要将数据发送到服务器,它必须位于表单字段中 更长的答案-有很多方法可以解决这个问

我想制作一个表单,用于提交创建model X实例所需的信息并将其保存到数据库,但我有一个小问题:我知道如何添加表单字段,如文本区域等,以及如何在调用create方法时访问这些值,但是,如果我还想发送一个不属于表单可访问部分的值,该怎么办?例如,如果我希望能够访问html文档的
中的一些文本,并将其发送到model X的create方法(这样它就可以像内容变量之类存储在中),该怎么办?如何做到这一点?

简短的回答是您不能-要将数据发送到服务器,它必须位于表单字段中


更长的答案-有很多方法可以解决这个问题,您有几个选项-将文本放在文本区域并将其样式设置为div,或者在创建模板时将其放在隐藏字段中,或者使用javascript将其复制到隐藏字段中。。。一切都取决于你真正想做什么。也许您可以提供一些更详细的信息?

在您的模型中,您希望使用
attr\u accessor

您可以使用
attr\u accessor
,它创建了一个虚拟属性,您可以在模型中使用该属性,但之后会被丢弃

例如:

app/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
class Post
app/views/posts/_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>


Yeah——基本上,当用户突出显示文本时,我从文档中复制该文本并将其转储到页面上的一个div中(该部分起作用)。然后,我想在用户单击页面上的“创建”按钮时创建一个新的摘录模型,我想将模型的“内容”属性设置为我已转储到div中的文本。因此,当您将内容复制到div中时,您是否也可以将内容复制到表单中的隐藏字段中,然后在表单提交到服务器时提取它?我想这是可能的,但我不知道怎么做。那么,您如何将用户突出显示的文本复制到div中?您只是在使用javascript、jquery或其他东西吗?它在这里说:“隐藏的输入不会显示给用户,但它们像任何文本输入一样保存数据。其中的值可以用javascript更改。”我需要知道如何做到这一点。对不起——我真的很感谢你的详细回复,但我无法完全理解——你能试着让答案更具体地针对我的问题(我在对上一个答案的评论中写了一个更详细的描述)好的。让我知道这是否有意义。我只是想给你一个真实的例子,说明我是如何做你想做的事情的。除非使用javascript,否则无法从div获取变量,但这不是您应该做的。如果你真的觉得需要这样做,你需要解释为什么是div而不是表单输入值。你能展示一下将文本添加到文本框的content属性的代码吗?