Rails 4,使用 link_to 更新模型属性

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)

任何帮助表示赞赏!

kur*_*enn 5

你可以这样做:

评论控制器.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)

希望这可以帮助!

更新:成员应该是:成员。