如何仅允许post_to_twitter(创建时或更新时)?
问题描述:
我在我的模特里有啾啾字段。 当用户创建一个新的后他可以签出一个复选框,也将发布到twitter。如何仅允许post_to_twitter(创建时或更新时)?
after_create :post_to_twitter, if: :tweeted
如果该复选框已于检查创建,它会从用户的帖子其他更新隐藏。
<% unless @post.tweeted? %>
<%= f.input :tweeted, inline_label: "Tweet this", as: :boolean %>
<% end %>
但是,如果用户没有检查它创建我怎么能允许它在更新检查一次。
所以张贴到Twitter只能执行上一次创建或更新。发布推文后,应该隐藏复选框。
after_create :tweet_with_condition
def tweet_with_condition
if tweeted_changed? && tweeted.present?
# post to twitter code blocks or method
end
end
在你的表格,你应该这样做如下:
答
在模型下面是非常容易的。你可以在哪里设置2条件。一个是检查@post是否是新记录,或者该帖子还没有发送推文。
<%= f.input :tweeted, inline_label: "Tweet this", as: :boolean if @post.new_record? or [email protected]? %>
答
您可以检查用户是否通过检查created_at和的updated_at时间戳后是相同的更新后的第一次。
<% if [email protected]? && (@post.created_at == @post.updated_at) %>
<%= f.input :tweeted, inline_label: "Tweet this", as: :boolean %>
<% end %>
+0
我知道如何根据条件隐藏复选框。我不知道如何正确设置我的模型。 – kirqe
它在创建时发布,但更新没有任何反应。但我认为这几乎是我需要的。 – kirqe
哦,当我为after_create和after_update调用tweet_with_condition时,它工作得很好。谢谢! – kirqe