我查询了数据库,在那里我要求具体的条目。这是控制器:
def index
@contributions = Contribution.all
@number1 = params[:number1]
@number2 = params[:number2]
@itemsok = Contribution.where("first_item_id = ?",@number1).where("first_item_grade = ?",@number2)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @contributions }
end
好的,我在视图中有一个表单,允许我从用户输入传递数据
<%= form_tag(contribution_path, :method => "get") do %>
<%= label_tag(:number1, "First Item Id") %>
<%= text_field_tag(:number1) %>
<%= label_tag(:number1, "First Item Grade") %>
<%= text_field_tag(:number2) %>
<%= submit_tag("Do it!" , :remote => true) %>
<% end %>
完美无缺,但现在我想从主页面索引(display_controller,display index.html.erb)渲染此函数。我把所有的属性都给了display_controller,如下所示:
class DisplayController < ApplicationController
def index
@items = Item.all
@contributions = Contribution.all
@number1 = params[:number1]
@number2 = params[:number2]
@itemsok = Contribution.where("first_item_id = ?",@number1).where("first_item_grade = ?",@number2)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @contributions }
end
end
end
我在贡献视图中的显示视图中有相同的表单.... 现在它的作用是将它重定向到贡献部分,我想要的是在显示视图中渲染结果......
有什么想法?非常感谢你。 抱歉我的英语很糟糕。
#
我明白了
得到答案是将表单更改为选定的操作
<%= form_tag(contribution_path, :method => "get") do %>
<%= label_tag(:number1, "First Item Id") %>
<%= text_field_tag(:number1) %>
<%= label_tag(:number1, "First Item Grade") %>
<%= text_field_tag(:number2) %>
<%= submit_tag("Do it!" , :remote => true) %>
<% end %>
将其更改为
<%= form_tag(display_path, :method => "get") do %>
<%= label_tag(:number1, "First Item Id") %>
<%= text_field_tag(:number1) %>
<%= label_tag(:number1, "First Item Grade") %>
<%= text_field_tag(:number2) %>
<%= submit_tag("Do it!" , :remote => true) %>
<% end %>
在我的情况下,这在开始时没有工作,但现在我认为这是因为我将display_path作为root_path所以我将其更改为...
<%= form_tag(root_path, :method => "get") do %>
<%= label_tag(:number1, "First Item Id") %>
<%= text_field_tag(:number1) %>
<%= label_tag(:number1, "First Item Grade") %>
<%= text_field_tag(:number2) %>
<%= submit_tag("Do it!" , :remote => true) %>
<% end %>
现在它完美无缺。
有人可以改变这个问题来回答,我有21个声望,不能回答我自己的问题。罐。
答案 0 :(得分:0)
为了更好的代码质量,您应该避免使用repititions
代码并重复使用,将该formm移动到公共partial view
并在表单标记中使用:url =>{:action => 'my_action'}
然后您可以使用它{ {1}} controller
查看。在表单操作时,它将从index
default
进行呈现。
controller
并在控制器各自的索引视图中
share/_form.erb.html
<%= form_tag(:url =>{:action => 'my_action'}, :method => "get") do %>
<%= label_tag(:number1, "First Item Id") %>
<%= text_field_tag(:number1) %>
<%= label_tag(:number1, "First Item Grade") %>
<%= text_field_tag(:number2) %>
<%= submit_tag("Do it!" , :remote => true) %>
<% end %>
你甚至可以在索引方法中声明动作和控制器的变量,如
index.erb.html
<%= render :partial 'share/form' %>
然后以表格
def index
// do something
@action = 'new_action'
@controller = 'new_controller'
// do some more thing
end