一页上有两个表格。我希望控制器中的if else语句根据提交的表单使用不同的参数和变量值。从谷歌搜索中我发现的最好的是在提交按钮上有一个值。
<%= f.submit "Save" :value => "x" %>
如果这是一种似是而非的方式,我无法找到如何制作if else语句来检查提交值是否为&#39; x&#39;。
像
这样的东西 if submit.value == 'x'
do something
else
do something else
end
真的不确定。如果有另一种方法在控制器中有一个if else声明来捕捉女巫形式是通过使用身份证或姓名或我乐意听到的任何内容提交的。
答案 0 :(得分:1)
{{1>}的帮助下,可以访问 提交按钮 的 值 ,所以你可以用它来检查提交的表格。
params[:commit]
答案 1 :(得分:1)
@Pavan
有直接的答案,但如果您按照各自的submit
值评估表单提交,则您的模式存在重大问题。
<强>表格强>
表单应该是一种将值传递给控制器的方法,然后控制器将填充模型。您不必根据这些值确定操作,除非您有不同的功能......
#app/views/posts/index.html.erb
<% @posts.each do |post| %>
<%= form_for post do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
<% end %>
以上内容将创建多个表单,所有表单都提交到posts#update
方法:
#app/controllers/posts_controller.rb
class PostsController < ApplicationController
def update
@post = Post.find params[:id]
@post.update post_params
end
private
def post_params
params.require(:post).permit(:x, :y, :z)
end
end
这些表单中的值并不重要,也不会发送给post
个对象;它们都将以完全相同的方式进行评估。
-
操作强>
另一种方法是针对不同的表单单独执行操作:
#config/routes.rb
resources :posts do
patch :update_2, on: :member
end
#app/controllers/posts_controller.rb
class PostsController < ApplicationController
def update_2
@post = Post.find params[:id]
@post.param = "value"
@post.update post_params
end
end
#app/views/posts/show.html.erb
<%= form_for @post, url: posts_update_2_path(@post) do |f| %>
<%= f.submit %>
<% end %>
答案 2 :(得分:0)
您可以使用类似
的内容var cve = "CVE-2015-4004";
val doc = Jsoup.connect(url).get()
val tds = doc.select("tr.srrowns:has(td:contains(" + cve + ")) > td")
for( var td <- tds ){
println( td.text() );
}
然后检查你的控制器:
<%=f.submit "Basic update", name: "basic-update" %>
<%=f.submit "Security update", name: "security-update" %>