查看
<%= link_to "Link", {:action => "AjaxView",:col => "colname"},
:update => "Ajaxcall", :remote => true %>
控制器
def AjaxView
@vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col]))
respond_to do |format|
format.js { render :layout=>false }
end
end
AjaxView.js.erb
if ( (<%= col %>) == "colName") {
$("#3").text("<%= escape_javascript(render(:partial => "var") %>");
}
else
{
$("#2").text("<%= escape_javascript(render(:partial => "var") %>");
}
这里的问题是这个变量“col”在AjaxView.js.erb文件中没有得到它的确切值,而且我的If else条件没有被执行。我在这里缺少什么?
答案 0 :(得分:0)
col
中未分配局部变量AjaxView.js.erb
。我认为你打算把它写成params[:col]
。
var
周围的双引号也应该是单引号,以便与周围的双引号很好地搭配。
答案 1 :(得分:0)
{:action => "AjaxView",:col => "colname"}
这不是你为link_to构建网址的方式。
访问AjaxView
方法的路线是什么?
它应该是:link_to "Link", AjaxView_resources_path(:col => "colname")
。
在控制器中,您需要设置一个实例变量@col = params[:col]
才能在视图中使用它。
ps:您应该将方法命名为ajax_view而不是AjaxView。
答案 2 :(得分:0)
if ( @col.to_s == "colName") {
$("#3").text("<%= escape_javascript(render(:partial => "var") %>");
}
elsif ( @col.to_s == "colName1")
{
$("#2").text("<%= escape_javascript(render(:partial => "var") %>");
}