2016-03-05 46 views
0

假设模型中的值,我有像这样设置复选框中选中或取消选中基于网页加载

<%= check_box_tag(:monday) %> 

提交当窗体上的复选框,该复选框更新的模式。当用户加载页面时,如果'monday'的模型值为true,我希望检查该复选框,如果模型值为false,则不选中。

我倾向于一个帮助器方法,它会返回true或false的值,这应该是直截了当的,但是如何从视图中调用该方法并在页面加载时返回true/false值?

编辑:

<%= form_for @recur_breakfast_plate, url: update_recur_breakfast_plate_path do |f| %> 
        </br> 
        <div class='field form-group'> 
        <div class='checkbox-inline'> 
         <%= check_box_tag(:monday) %> 
         <%= label_tag(:monday, "Monday") %> 
        </div> 

        <div class='checkbox-inline'> 
         <%= check_box_tag(:tuesday) %> 
         <%= label_tag(:tuesday, "Tuesday") %> 
        </div> 

        <div class='checkbox-inline'> 
         <%= check_box_tag(:wednesday) %> 
         <%= label_tag(:wednesday, "Wednesday") %> 
        </div> 

        <div class='checkbox-inline'> 
        <%= check_box_tag(:thursday) %> 
        <%= label_tag(:thursday, "Thursday") %> 
        </div> 

        <div class='checkbox-inline'> 
         <%= check_box_tag(:friday) %> 
         <%= label_tag(:friday, "Friday") %> 
        </div> 
        <%= f.submit "Submit", class: "btn btn-xs btn-success" %> 

        </div> 
<% end %> 

与问题^

+0

您是否尝试过使用'''form_for'''和相应的方法呢? http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html –

+0

你应该得到这个“免费”的轨道。你可以发布表单和模型吗? –

回答

1

相关的默认轨道上来的form_for应该其中将在编辑行动之前执行的before_action设置@recur_breakfast_plate。这样所有的字段都会有正确的值。

反正你可以试试

<%= check_box_tag :day, @recur_breakfast_plate.day %> 
+0

刚刚尝试过这一点,但它没有任何区别。可以使用@ recur_breakfast_plate.day的值在check_box_tag中设置默认的“已检查”值吗? – clandry94

+0

是的,但你必须在正确的一天中取代_day_。您传递给check_box_tag的第二个参数将导致输入的值。你应该检查[文档]中的示例(http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-check_box_tag)。 – rdupz

+0

忽略我以前的评论,当页面加载时,我在控制器中创建了一个新的RecurringBreakfastPlate,而不是加载current_user的模型。它正在工作! – clandry94