我正在根据表中的属性预先填充Rails表单中的值。
使用普通的脚手架,这对新动作很有用。当我返回编辑时,它会预先填充不正确的值。要解决这个问题,我想在表单中创建一个if / else条件。为了测试,如果我们在编辑路径中,我希望表单放置一个整数值“7”(作为测试):
<% if params[:edit] %>
<div class="form-group">
<div class="field">
<%= f.label :Game_Number %><br>
<%= f.number_field :category_id, :value => 7, class: "form-control" %>
</div>
</div>
<% else %>
<div class="form-group">
<div class="field">
<%= f.label :Game_Number %><br>
<%= f.number_field :category_id, :value => params[:id].to_i, class: "form-control" %>
</div>
</div>
<% end %>
执行此操作时会加载页面,但会继续错误地使用<% else %>
操作。
此外,我的脚手架中此编辑页面的URL结构如下:
http://localhost:3000/questions/22/edit
如果条件改变了编辑路线上的行为,我该如何构建?
答案 0 :(得分:1)
action
中有controller
和params
。你可以有这样的条件:
<% if params[:action] == 'edit' %>
<% else %>
<% end %>
答案 1 :(得分:0)
<error-page>
<error-code>404</error-code>
<location>/Error404.html</location>
</error-page>
答案 2 :(得分:0)
使用实例变量执行此操作,在控制器中设置控制器中的值,而不是在视图中:
def new
@object = Object.new(category_id: params[:category_id])
end
def edit
@object = Object.find(params[:id])
// puts @object.category_id => 7 or what
end
在您看来,只是:
<%= form_for @object do |f| %>
<div class="form-group">
<div class="field">
<%= f.label :Game_Number %><br>
<%= f.number_field :category_id, class: "form-control" %>
</div>
</div>
<% end %>