定制控制器动作

时间:2016-09-23 19:44:51

标签: ruby-on-rails ruby database ruby-on-rails-4 controller

我有一个按钮来更改rails项目中的数据库值:

项目显示视图(haml)

= link_to("", :controller => "items", :action => "set_active", :id => @item.id) do
    .btn Publish

上述ItemsController

def show
    @item = Item.find(params[:id])

    def set_active
        @item.is_active = true
        @item.save!

        flash[:notice] = "Item got published"
    end
end

除按钮外,视图正常工作。
如果单击按钮,页面只会刷新,但值不会改变,也不会弹出闪光信息。

任意想法为什么?

提前感谢您的回答!如果您需要其他信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

沿着这些方向:

# controller
def set_active
  @item.is_active = true
  @item.save!

  flash[:notice] = "Item got published"
end

# routes
resources :jobs do
  get :set_active, on: :member
end

# view
link_to 'Activete', set_active_job_path(job)