我正在尝试将URL params传递到我的Rails应用程序中(例如:/ entries / new?name = asdf
控制器:
def new
@entry = Entry.new(params[:name])
end
def create
@entry = Entry.new(params[:name])
if @entry.save
redirect_to @entry, notice: 'Entry was successfully created.'
else
render :new
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_entry
@entry = Entry.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def entry_params
params.require(:entry).permit(:name)
end end
表单字段:
<%= hidden_field_tag :name, params[:name] %>
我收到错误“在分配属性时,必须将哈希作为参数传递。”
有什么想法吗?
答案 0 :(得分:1)
params
是一个哈希。 params[:name]
将返回一个字符串(上例中的'asdf')。在实例化Entry
时,您只应在传递哈希值时传递字符串。假设name
是Entry模型的属性,则需要执行此操作
@entry = Entry.new(name: params[:name])
答案 1 :(得分:0)
使用rails generate scaffold Entry
并查看生成的代码。你试图做的事情没有多大意义