未知关键字可确保问题

时间:2014-06-17 18:37:08

标签: javascript jquery html ruby-on-rails ruby

我有一个rails 4应用程序,我有一行代码:

<%= f.select :type_of, %w[Bookshelf Birdhouse Book Cabinet], {},
                onChange: "alert("<%= render 'stores/product_form/bookshelf', f:f %>")" %>
<div id='newContent'>
  <%= render 'stores/product_form/bookshelf', f:f %>
</div>

我尝试做的是onChange of select,在指定的div #newContent中渲染部分并用jQuery&#39; s html()函数替换div的当前内容。

这可能吗?现在,使用我当前的代码我收到错误:

html.erb:18: syntax error, unexpected keyword_ensure, expecting ')'

修改

这是我的新选择/下拉代码:

<%= f.select :type_of, %w[Bookshelf Birdhouse Book Cabinet], {}, class: "",
                onChange: 'alert(" #{ raw(render "stores/product_form/bookshelf", f:f)} ")' %>

我已经尝试过使用raw和without而且两种方式都不会呈现为ruby代码,它们只是呈现为html

1 个答案:

答案 0 :(得分:0)

你太快做了渲染。您不希望将部分内容呈现到onChange处理程序中。你想要的是onChange处理程序触发部分的渲染。

你想要这样的东西:

User Selects Option in Dropdown
            |
            v
onChange Handler Runs
            |
            v
Handler triggers AJAX request
            |
            v
Server returns javascript partial
            |
            v
Handler processes AJAX response
            |
            v
AJAX response renders HTML onto page

查看How to make Ajax calls with Rails 3 using remote_function?了解一些实际的代码示例。