Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 如何在.js.erb渲染文件中传递参数并获取_Ruby On Rails 4_Parameters - Fatal编程技术网

Ruby on rails 4 如何在.js.erb渲染文件中传递参数并获取

Ruby on rails 4 如何在.js.erb渲染文件中传递参数并获取,ruby-on-rails-4,parameters,Ruby On Rails 4,Parameters,我正在开发rails4应用程序,其中我必须从controller渲染.js.erb文件 现在我必须将参数从controller传递到.js.erb文件,并将该参数用于该文件 控制器: if @user.user_settings == nil render "save_account_settings.js.erb", :locals => {:msg => "Your account settings saved successfully"} else

我正在开发
rails4应用程序
,其中我必须从controller渲染
.js.erb文件

现在我必须将参数从controller传递到.js.erb文件,并将该参数用于该文件

控制器:

  if @user.user_settings == nil
      render "save_account_settings.js.erb", :locals => {:msg => "Your account settings saved successfully"}
  else
      render "save_account_settings.js.erb", :locals => {:msg => "Something goes wrong. Please try again."}
  end
上面的代码来自控制器,我必须将参数传递到.js.erb文件并使用它

File:  save_account_settings.js.erb

$('#saved_message').text('<%=params[:msg]%>');
文件:保存账户设置.js.erb
$(“#已保存的_消息”)。文本(“”);
但不是为我工作

我哪里错了。需要更改文件名或其他内容


谢谢

将邮件设置为实例变量,就像在.html.erb视图中一样:

if @user.user_settings == nil
  @msg = "Your account settings saved successfully"
else
  @msg = "Something goes wrong. Please try again."
end

render "save_account_settings"
在您的js.erb视图中:

$('#saved_message').text('<%= @msg %>');
$('saved#u message')。文本('';

注意:
params
在控制器和视图中始终是请求的参数。当您使用
:locals
将变量传递给视图进行渲染时,它们将在视图中作为局部变量可用,即仅
msg
而不是
参数[:msg]
。后者将尝试从请求中获取msg参数,即
?msg=查询中的值

Perfect。谢谢你,伙计。