如何通过单击Rails中的按钮来调用非操作方法

时间:2012-08-15 23:07:46

标签: ruby-on-rails

如果这是一个非常新的问题,请原谅我。

当用户点击视图中的分享按钮时,如何调用方法(在Facebook上共享对象)。

我可以做share / facebook部分,我只是不知道当用户点击按钮时如何从模型中调用方法

2 个答案:

答案 0 :(得分:0)

my_controller.rb

def do_something
 ...
end

的routes.rb

get "/something" => "my_controller#do_something", :as => :do_something
#you can also use post, put, delete or match instead of get

视图

<%= link_to "call do something", do_something_path %>

发帖等......

<%= link_to "call do something", do_something_path, method: :post %>

答案 1 :(得分:0)

根据您的具体需求,我会看到两个可能的答案。

  • 如果要在您为对象创建的列之外的模型中添加方法,可以在model.rb文件中执行此操作:

model.rb

def name_twice
    "#{self.name}#{self.name}"
end

然后你可以拿一个模型实例来调用它:&#34; @ model.name_twice&#34;。

  • 如果要在控制器中添加另一个路由方法,可以在models_controller文件中定义它:

models_controller.rb

def approve
    @model = Model.find_by_id(params[:model_id])
    model.toggle!(:approved)
    redirect_to @model
end

要使新控制器功能起作用,必须将其添加到路径文件中:

的routes.rb

resources :models do
   get 'approve', :on => :member 
end

希望这可能有点帮助。这些示例应该让您了解如何将其他方法/操作添加到模型/控制器。