我知道这个问题之前已经得到了回答,但这些方法都没有对我有用。
我有一个带有select_tag的视图,可以从我的数据库加载选项。
<%= select_tag :nom, options_from_collection_for_select(Usuario.all, :id, :tienda), prompt: "Seleccionar tienda" %>
然后,我使用link_to <%= link_to("Cargar", :action => 'rel') %><br>
在我的控制器上加载查询
def rel
@nom = params[:nom]
@tie = Av.find_by_sql(["SELECT * FROM avm.avs where usuario_id in(select id from avm.usuarios where tienda = ?)", @nom])
render('rel')
问题是,当我在select_tag上选择任何值时,它不会传递该值并将值设置为nil ...
我还使用了collection_select并且也没有工作。 <%= collection_select(:tienda, :tienda, Usuario.all, :id, :tienda)%>
我真的试图弄清楚原因。提前致谢!
答案 0 :(得分:2)
使用public void onBackPressed() {
if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) {
supportFinishAfterTransition();
}
}
:
form_tag
提示:将<%= form_tag action: rel do %>
<%= select_tag :nom, options_from_collection_for_select(Usuario.all, :id, :tienda), prompt: "Seleccionar tienda" %>
<br>
<%= link_to("Cargar", '#', onclick: 'this.parentNode.submit(); return false') %>
<% end %>
替换为find_by_sql
:
Arel
答案 1 :(得分:1)
我认为您应该将select_tag
放在form_tag
块中,并使用submit_tag
代替link_to
。如果您只使用链接,则不会将参数传递给控制器(因此您将获得nil)。
类似的东西:
<%= form_tag action: 'rel' do %>
<%= select_tag :nom, options_from_collection_for_select(Usuario.all, :id, :tienda), prompt: "Seleccionar tienda" %>
<%= submit_tag 'Cargar' %>
<% end %>
请注意,这种方法并不安全,因为没有真实性令牌验证。