Я прочитал документацию по этому вопросу, и до сих пор не знаю, как это сделать.
У меня есть столбец в таблице для: бесплатно, что является логическим
true = free
false = paid
nil = both
Я пытаюсь запечатлеть ту же логику в своей форме, и я делаю совершенно ужасную работу ... пока все получается бесплатно
index.html.erb:
<div class="field">
<label class="radio">
<%= radio_button_tag(:free, "free", :checked => true) %>
Free
</label>
<label class="radio">
<%= radio_button_tag(:free, "paid") %>
Paid
</label>
<label class="radio">
<%= radio_button_tag(:free, "both") %>
Both
</label>
</div>
resources_controller.rb (я знаю, что это не идеально, потому что он проверяет параметры каждый раз (даже если они вводят неверную информацию), но я не уверен, как еще проверить, могу ли я сохранить его, не сохраняя его... Я даже не знаю, правильно ли я сделал params, но я тоже не уверен, как это проверить. Когда я делаю p params[:resources]
, он не печатает его так, как ему нравится. Есть хороший способ сделать это врельсы?
def create
@resource = Resource.new(params[:resource])
if params[:resource][:free] = "free"
@resource[:free] = true
elsif params[:resource][:free] = "both"
@resource[:free] = nil
else
@resource[:free] = false
end
if @resource.save
redirect_to root_url
else
render :action => :new
end
end
resources_helper.rb
def output_free
if @resource.free = true
"Free"
elsif @resource.free = false
"Paid"
else
"Both"
end
end