我有一個模型條目,布爾列published
,默認設置爲false
。下面是完整的遷移文件:模型布爾方法無法正常工作
class CreateMultifloraEntries < ActiveRecord::Migration[5.0]
def change
create_table :multiflora_entries do |t|
t.string :type, index: true
t.string :title
t.string :slug, unique: true
t.json :payload
t.integer :user_id, index: true
t.boolean :published, default: false
t.timestamps
end
end
end
在我models/entry.rb
我增加了以下方法:
def published?
Entry.where("published", true)
end
和index.html.erb
我有這樣的:
<% @entries.each do |entry| %>
# ...
<% if entry.published? %>
<p> Published <p>
<% else %>
<!-- There will be an AJAX request to set entry published later -->
<%= link_to "Publish", "whatever-path" %>
<% end %>
<% end %>
但是,當我創建一個條目並導航到我的索引視圖,條目顯示爲已發佈。
您的'self.published?'方法一直返回true。 –
我明白了,我編輯了我的問題 - 我犯了一個錯誤,而不是'self.published?''我剛剛發佈了''方法。我怎麼能重寫它? – AlexNikolaev94
它仍然一直返回'true'。在這個模型中不需要一個方法,下面的答案是正確的。 –