我在我的奖学金表中查询我的某个属性时遇到了困难。我定义了一个私有函数来接受奖学金“表”的以下属性 •奖学金(奖学金类型) •姓名(个人奖励的名称) •价值(奖励金额) •gpa(需要gpa) •截止日期(申请奖励的最后日期)
我为提供者控制器指定了以下内容,其中提供者的节目页面包含部分奖学金#new页面,用户可以使用带有帖子请求的表单标签发布基金:
<%= form_tag(scholarships_path, {:class => "form"}) do %>
<%= label_tag("date of events") %>
<%= datetime_local_field(:scholarship, :deadline) %>
<%= label_tag("The Name Of The Fund") %>
<%= text_field_tag(:name) %>
<%= label_tag("Type of Fund") %>
<%= text_field_tag(:scholarship) %>
<%= label_tag("Contributable Amount") %>
<%= text_field_tag(:value) %>
<%= label_tag("GPA Considerations?") %>
<h6><span style"font-style:italics">If No GPA is worth consideration, then submit 0.0 for this fund</span></h6>
<%= number_field(:scholarship, :gpa, in: 0.0..4.0, step: 0.01) %>
<%= submit_tag(:submission) %>
<% end %>
以下内容写在providers_controller_path
中def show
@providers_scholarship = Scholarship.new
@provider = current_provider
end
private
def provider_params
params.require(:provider).permit(:industry, :title, :password, :email)
end
包含以下信息的页面如下所示:
<div class="col-md-9">
<div class="form form-control scholarship-maker" >
<%= render "scholarships/new" %>
</div>
</div>
我得到了一个奇怪的回应,告诉我每当我发布一个帖子请求时,“奖学金”参数都是空的。
我知道这很容易调试,但是我找不到解决这个问题的方法。
答案 0 :(得分:0)
您的provider_params
方法需要provider
,并允许提供商使用各种属性。但是,您的表单将发送未嵌套在provider
内的属性。
例如,它期待像
这样的参数 { "provider" => { "industry" => "foo", "title" => "bar", ... } }
更新field_tags以包含provider
可以解决您的问题。
e.g
<%= text_field_tag(:name) %>
会变成
<%= text_field_tag("[provider][name]") %>
但是,如果将form_for
与Provider
类一起使用,您可能会更好。