我是铁杆新手。我正在使用form_for来更新'collab'数据库条目。我已经修改了我的更新函数来创建一个名为“@interpreted_code”的新实例变量并将其分配给一个字符串。在我的更新函数中创建/更改此变量时,我希望视图显示它而不重新加载。 这是我的观点,collab.html.erb
olef.Activate();
Excel.Workbook wb = (Excel.Workbook)olef.Object;
这是我的controller.rb中的更新功能
<%= form_for @collab, :remote=>true do |f| %>
<p>
Enter Ruby Code<br>
<%= f.text_area :text %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
<div id='interpreted' >
<%= @interpreted_code.inspect %> #this doesn't work
</div>
答案 0 :(得分:2)
试试这个 -
首先创建一个像这样的部分_interpreted_code.html.erb
<%= @interpreted_code.inspect %>
现在改变您的观点 -
<%= form_for @collab, :remote=>true do |f| %>
<p>
Enter Ruby Code<br>
<%= f.text_area :text %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
<div id='interpreted' >
<%= render partial: "interpreted_code" %>
</div>
创建文件update.js.erb
$("#interpreted").html("<%= raw escape_javascript(render(:partial => 'interpreted_code')) %>")
像这样改变你的控制器 -
def update
@collab = Collab.find(params[:id])
if @collab.update(collab_params)
File.open('rubyfile.rb', 'w') { |file| file.write(@collab.text) }
@interpreted_code = "BLAH BLAH (change later)"
end
respond_to do |format|
format.js
end
end