Ruby on rails rails中变量/对象名称后的问号
我对RubyonRails非常陌生。提前谢谢你的耐心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
<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