我在访问shared / _time_select.html.erb中的:prepend_id变量时遇到问题。变量似乎是空的。我们的想法是能够调用partial并传入一个字符串(以预先添加id),这样当页面上有两个或更多时间输入字段时,与post变量不会发生冲突。
我从另一个_form.html.erb partial调用以下行。
<%= render 'shared/time_select', :locals => { :prepend_id => "starttime" } %>
这是我的共享/ _time_select.html.erb
的一部分<div id="<%= @prepend_id.to_s %>_select_container time_select_container">
<select name="<%= @prepend_id %>_hour">
...
</select> :
<select name="<%= @prepend_id %>_minute">
...
</select>
<select name="<%= @prepend_id %>_ampm">
... </select>
</div>
这将使他们更容易发布到控制器。然后在控制器中,我可以轻松地将时间附加到以相同形式提交的日期时间。另外,一个侧面的问题是我想知道这是否是使用帮助的好时机?
答案 0 :(得分:4)
首先,将@放在部分内部。只需使用prepend_id
代替@prepend_id
此外,您需要使用:partial AND:locals键,或两者都不使用:
render :partial => 'shared/time_select', :locals => { :prepend_id => "starttime" }
#OR
render 'shared/time_select', :prepend_id => "starttime"
这里看起来像是同样的问题: passing values to partial in rails 3