手动执行“创建”功能有什么办法吗? 我有一个脚手架,(模型/控制器/视图),所以我想要做的是改变一点用户给我的参数。
def create
@meme = Meme.new(params[:meme])
respond_to do |format|
if @meme.save
format.html { redirect_to @meme, notice: 'Meme was successfully created.' }
format.json { render json: @meme, status: :created, location: @meme }
else
format.html { render action: "new" }
format.json { render json: @meme.errors, status: :unprocessable_entity }
end
end
end
有没有办法做类似的事情:
def create
@meme = Meme.new
@meme.name = params([:name])
@meme.id = params([:id])
@meme.url = @meme.name+@meme.id
respond_to do |format|
if @meme.save
format.html { redirect_to @meme, notice: 'Meme was successfully created.' }
format.json { render json: @meme, status: :created, location: @meme }
else
format.html { render action: "new" }
format.json { render json: @meme.errors, status: :unprocessable_entity }
end
end
end
正如您在上一个示例中所看到的,我想保存一个连接名称和ID的URL, 有没有办法从控制器实现这一点。
提前致谢。
答案 0 :(得分:2)
您正在寻找的代码是两种样本的组合:
def create
@meme = Meme.new(params[:meme])
@meme.url = "#{@meme.name}-#{@meme.id}"
respond_to do |format|
if @meme.save
format.html { redirect_to @meme, notice: 'Meme was successfully created.' }
format.json { render json: @meme, status: :created, location: @meme }
else
format.html { render action: "new" }
format.json { render json: @meme.errors, status: :unprocessable_entity }
end
end
end
我在名字和身份证之间划了一条冲刺,只是为了踢。
您可能还想考虑在Meme模型中的before_save
钩子中执行此操作,这比在控制器中使用它更清晰。祝你好运!