Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails中变量/对象名称后的问号_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails rails中变量/对象名称后的问号

Ruby on rails rails中变量/对象名称后的问号,ruby-on-rails,ruby,Ruby On Rails,Ruby,我对RubyonRails非常陌生。提前谢谢你的耐心 <div class="field"> <%= @pin.image_url if @pin.image? %> <%= f.file_field :image %> <%= f.hidden_field :image_cache %> </div> 及其模式 class CreatePins < ActiveRecord::Migration d

我对RubyonRails非常陌生。提前谢谢你的耐心

<div class="field">
    <%= @pin.image_url if @pin.image? %>
    <%= f.file_field :image %>
    <%= f.hidden_field :image_cache %>
</div>
及其模式

class CreatePins < ActiveRecord::Migration
  def change
    create_table :pins do |t|
      t.string :name
      t.string :image
      t.integer :board_id

      t.timestamps null: false
    end
  end
end

class AddImageToPins < ActiveRecord::Migration
  def change
    add_column :pins, :image, :string
  end
end
class CreatePins
没有图像吗?方法在我的控制器中

您不在控制器上调用此方法,而是在分配给
@pin
变量的对象上调用此方法,该变量可能是您的
pin
模型。您的模型确实有
image?
方法

什么是f


它是传递到
块的
表单。

它不是你的
pin
模型,它只是你的
pins
表的db模式。模型可能位于
app/models/pin.rb
文件中。谢谢。我知道。我将编辑我的帖子。我的pin模型没有图像?方法。@MWL是的,是的。它是由
ActiveRecord
根据数据库模式自动生成的。由于
pins
表有
image
列,
image
image=
image?
方法是自动生成的,至少在Rails 4.1.6中是这样(我认为在Rails 3中,
方法的生成仅限于布尔列,但我不确定).
@pin.image?
@pin.attribute\u present?(:image)
的快捷方式。根据,如果属性既不是
nil
也不是
empty?
@Stefan谢谢,它将返回
true
。我想知道
@pin.image?
是否等同于
@pin.image
或到
@pin.image.present?
class CreatePins < ActiveRecord::Migration
  def change
    create_table :pins do |t|
      t.string :name
      t.string :image
      t.integer :board_id

      t.timestamps null: false
    end
  end
end

class AddImageToPins < ActiveRecord::Migration
  def change
    add_column :pins, :image, :string
  end
end