Ruby on rails 如何发送与模型无关的值

Ruby on rails 如何发送与模型无关的值,ruby-on-rails,twitter,Ruby On Rails,Twitter,我有一个Post模型,它具有标题和内容属性 我希望当用户创建这样的帖子时,可以发tweet <%= form_for @post do |f| %> <%= f.text_field :title %> <%= f.text_area :content %> <%= f.check_box :with_tweet %> # Error <%= f.text_field :tweet %> # Error <% en

我有一个
Post
模型,它具有
标题
内容
属性

我希望当用户创建这样的帖子时,可以发tweet

<%= form_for @post do |f| %>
  <%= f.text_field :title %>
  <%= f.text_area :content %>
  <%= f.check_box :with_tweet %> # Error
  <%= f.text_field :tweet %> # Error
<% end %>

#错误
#错误
此代码失败,因为对于
Post
,没有
with_tweet
tweet
属性。 我认为在这种情况下,查询字符串不是个好主意


如何发送与模型无关的信息?

将其定义为虚拟属性:

class Post < ActiveRecord::Base
  ...
  attr_accessor :with_tweet, :tweet
  ...
end
class Post

attr\u accessor
将为带有tweet
tweet
提供一个getter和setter方法,然后您可以通过
@post
对象访问这些方法。

将它们定义为虚拟属性:

class Post < ActiveRecord::Base
  ...
  attr_accessor :with_tweet, :tweet
  ...
end
class Post

attr\u accessor
将为带有tweet
tweet
提供一个getter和setter方法,然后您可以通过
@post
对象访问该方法。

关于Vee的答案,让我解释一下为什么需要它:

Rails模型中的每个
属性
都是使用-的结果,这意味着模型的属性是 基本上只是Ruby对象的一部分,当您的类 初始化

您的问题是RubyonRails没有构建任何其他组件 属性,而不是数据库中的属性,这意味着如果需要 跟踪额外数据,您必须使用 类知道如何填充那些不在数据库中的

用于定义这些额外属性


关于Vee的回答,让我解释一下为什么需要它:

Rails模型中的每个
属性
都是使用-的结果,这意味着模型的属性是 基本上只是Ruby对象的一部分,当您的类 初始化

您的问题是RubyonRails没有构建任何其他组件 属性,而不是数据库中的属性,这意味着如果需要 跟踪额外数据,您必须使用 类知道如何填充那些不在数据库中的

用于定义这些额外属性