在模型弹出窗口中接收变量作为问题类型ID为' $('#subquestion')。val()'基于此值,模型弹出内容必须创建,
模型弹出窗口接收值但基于此
<%@lg = Language.all %>
<% @qs_type = Question.find( **javascript value** ).question_type %>
<% @lg.each do |n| %>
if ( @qs_type == 11)
matchingtype question two textbox
<%= text_area %>
<%= text_area %>
elsif @qs_type == 3
mutiple choice one textbox.
<%= text_area %>
<% end %>
有没有办法做到这一点? RJS是否会有所帮助?
答案 0 :(得分:2)
很抱歉,答案可能不是。
在评估模板时,Rails将首先解析并运行任何嵌入的ruby ....然后将生成的html(可能还有javascript)传递回客户端的机器,然后解释html,然后运行的JavaScript。
所以......当你运行javascript时,ruby已经运行并且任何结果都被替换了。你无法从红宝石中调用javascript值,因为javascript不会运行,直到红宝石使用它为时已晚。
你需要重新思考被召唤的内容和时间。 另一个可用的选项是创建一个返回json的新控制器操作...并在模板中,使用 模板中的javascript中的结果通过AJAX调用该操作。
但是我认为你上面的内容是javascript和ruby交织在一起......应该简化一下。从您所展示的内容中分离出您需要的内容......并向我们提供您需要的更多信息,我们可以帮助您找到解决方案。