有没有办法我只能行动而没有​​视野

gat*_*tes 3 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5

在我看来,有一个link_torandom_path. 因此,当用户单击该链接时,它将转到具有操作的特定控制器,我正在向数据库写入该操作。它真的不需要渲染视图。但是拥有视图模板似乎是强制性的Is there a way to avoid having the view.

<%= link_to bla_path do %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

在routes.rb

get 'bla' => 'contr#act'
Run Code Online (Sandbox Code Playgroud)

在控制器中

in cont_controller.rb

def act 

Model.create(name: "bla")

# I don't need the view for this. 

end 
Run Code Online (Sandbox Code Playgroud)

Bro*_*tse 5

http 协议的工作方式是您必须响应每个请求。但是,您可以回复空白消息,在 Rails 中,最简单的方法是添加:

head :ok
Run Code Online (Sandbox Code Playgroud)

在你的行动中的任何地方。


tec*_*ams 5

你也可以写你的动作。

def act 
  Model.create(name: "bla") 
  render :nothing => true
end 
Run Code Online (Sandbox Code Playgroud)

如果您需要返回相同的操作,只需编写

def act 
  Model.create(name: "bla") 
  redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)