在 rails 中保存单选按钮值
Posted
技术标签:
【中文标题】在 rails 中保存单选按钮值【英文标题】:Saving radio buttons values in rails 【发布时间】:2011-10-31 16:41:45 【问题描述】:我正在尝试在我的 rails 应用程序中使用单选按钮。目前,按钮按预期显示在页面上,但提交时未保存该值。我认为问题实际上出在我的提交按钮上——按下它时什么都没有发生。
这是我的页面的代码,带有单选按钮:
<div class="form_row>
<%= form_for @term, :url=> :action =>"update_status" do |f| %>
<%= f.radio_button :status, 'on' %><b>On</b> <br/>
<%= f.radio_button :status, 'off' %><b>Off</b> <br/>
<%= f.radio_button :status, 'leave' %><b>Leave</b> <br/>
<div class="actions">
<%= f.submit "Change term status" %>
</div>
<% end %>
</div>
我纠正了我的错字(':actionsto
:action`),但它仍然无法正常工作。这里有更多信息...
单选按钮位于页面顶部,表单的其余部分位于其下方。我有两个不同的提交按钮,一个用于单选按钮,一个用于填写页面底部的空白信息。第二种形式运行良好,但是当我单击“更改术语状态按钮”(应该通过调用 update_status
提交单选按钮的按钮时,什么也没有发生。
这是我的页面视图的所有代码:
<h1> <%= @title %> </h1>
<div class="form_row>
<%= form_for @term, :url=> :action =>"update_status" do |f| %>
<%= f.radio_button :status, 'on' %><b>On</b> <br/>
<%= f.radio_button :status, 'off' %><b>Off</b> <br/>
<%= f.radio_button :status, 'leave' %><b>Leave</b> <br/>
<div class="actions">
<%= f.submit "Change term status" %>
</div>
<% end %>
</div>
<%= form_for @term, :url=> :action=>"update" do |f| %>
<div class="field">
<%= f.label :course1, "Course 1" %><br />
<%= f.text_field :course1 %>
</div>
<div class="field">
<%= f.label :course2, "Course 2" %><br />
<%= f.text_field :course2 %>
</div>
<div class="field">
<%= f.label :course3, "Course 3" %><br />
<%= f.text_field :course3 %>
</div>
<div class="field">
<%= f.label :course4, "Course 4" %><br />
<%= f.text_field :course4 %>
</div>
<div class="actions">
<%= f.submit "Update" %>
</div>
<% end %>
以下是两个定义:
def update
@term = Term.find(params[:id])
@dplan=@term.dplan
if @term.update_attributes(params[:term])
flash[:success] = "Edit successful."
redirect_to @dplan
else
flash[:success] = "Error"
redirect_to @dplan
end
end
def update_status
@term = Term.find(params[:id])
@dplan=@term.dplan
if @term.update_attributes(params[:term])
flash[:success] = "Term status changed."
redirect_to @term
else
flash[:success] = "Error"
redirect_to @term
end
end
谢谢!
【问题讨论】:
您的代码对我有用。你有更多信息吗? 日志是否显示请求正在以预期值发布? 抱歉,我对此有点陌生 - 日志是什么? 【参考方案1】:我认为您的form_for
调用中有一个错误:应该使用:url => :actions => "update_status"
而不是:url => :action => "update_status"
。
【讨论】:
你说得对,我确实有那个错字,但由于某种原因它仍然无法正常工作! 正在使用attr_protected
或attr_accessible
通话吗?也许问题出在模型内部。【参考方案2】:
感谢http://railscasts.com/episodes/38-multibutton-form!我想当您尝试在一个页面上使用两个表单时会发生一些奇怪的事情,最好的方法是合并表单,但在我的术语控制器update
定义中使用 if 语句来区分两个按钮。感谢您的所有帮助!
【讨论】:
以上是关于在 rails 中保存单选按钮值的主要内容,如果未能解决你的问题,请参考以下文章