git*_*tic 1 controller model ruby-on-rails link-to ruby-on-rails-4
希望有人可以帮助解决这个问题。
我有 2 个控制器/模型:(1)用户有很多(2)评论。评论属于用户。
我想在视图中使用 link_to 简单地更新 Review 模型中的标志属性。如果用户单击“标志”链接,它将更新/修补模型“审查”中的模型属性“标志”为整数“1”。
像这样的东西?
<%= link_to 'Flag', [review.user, review.flag], method: :put, data: { confirm: 'Are you sure?' } %>
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
你可以这样做:
评论控制器.rb
class ReviewsController < ApplicationController
def flag
review = Review.find(params[:id])
review.flag!
redirect_to :back #or wherever you want to redirect to
end
end
Run Code Online (Sandbox Code Playgroud)
路由文件
resources :reviews do
patch :flag, on: :member #reviews/1/flag
end
Run Code Online (Sandbox Code Playgroud)
评论/show.html.erb
<%= link_to "Flag", flag_review_path(review), method: :patch, data: { confirm: 'Are you sure?' }%>
Run Code Online (Sandbox Code Playgroud)
模型/评论.rb
class Review < ActiveRecord::Base
def flag!
update_attribute(:flag, 1)
#If you don't want callbacks or validations use this
#update_columns(:flag, 1)
end
end
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
更新:成员应该是:成员。
| 归档时间: |
|
| 查看次数: |
953 次 |
| 最近记录: |