我有以下rails活动模型
def update_status
post = Post.find params[:id]
post_status = post.update_attributes(status: status, user_id: user)
if post_status
post = Post.find params[:id]
status = post.status
user = Post.user_id
end
end在上面的代码中,我写了两遍find post,有更好的方法吗?有什么建议吗?
编辑-1:
我在post_controller.rb中的更新代码
post_status = post.update_attributes(status: status, user_id: user, approved_at: DateTime.now.to_time)我更新视图状态的链接是
<%= link_to edit_post_path(post, {status: 1}), class: 'btn btn-default btn-sm post-status', method: :get, remote: true do %>change status<% end %>发布于 2013-12-21 16:11:07
您可以像这样用Rails 4编写,我没有找到任何找到post的理由,因为在rails 4中,()比find()更受欢迎,而且我发现没有使用局部变量status和user。如果要在视图中使用实例变量,请使用实例变量。
def update_status
post = Post.where("id =?", params[:id]).first
post.user_id = user
post.status = status
post.save
endhttps://stackoverflow.com/questions/20720828
复制相似问题